﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>EnvSub</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/commands.css" type="text/css" rel="stylesheet">
<link media="print" href="../css/print.css" type="text/css" rel="stylesheet">
</head>
<body>

<h1>EnvSub</h1>

<p>把<a href="../Variables.htm">变量</a>设置为它自身减去给定的值 (也能比较<a href="FileSetTime.htm#YYYYMMDD">日期-时间</a>的值)。同义于：var -= value</p>

<p class="CommandSyntax">EnvSub, Var, Value [, TimeUnits]<br>
Var -= Value [, 
TimeUnits] <br>
Var-- </p>

<h3>参数 </h3>
<table border="1" bordercolor="#c0c0c0" cellpadding="3" cellspacing="0" width="100%">
  <tr>
    <td width="15%">Var</td>
    <td width="85%">要操作的<a href="../Variables.htm">变量</a>名称。</td>
    </tr>
  <tr>
    <td>Value</td>
    <td>任何整数、浮点数或<a href="../Variables.htm#Expressions">表达式</a>。(当提供了 <em>TimeUnits</em> 时将不支持表达式)。</td>
    </tr>
  <tr>
    <td>TimeUnits</td>
    <td><p>如果提供，此参数指示命令从 <em>Var</em> 减去 <em>Value</em> 就像它们都是 <a href="FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a> 格式的日期-时间标记。<em>TimeUnits</em> 可以是 Seconds, Minutes, Hours 或 Days (或者仅用它们的第一个字母)。如果 <em>Value</em> 为空，将用当前的时间来代替它。同样，如果 <em>Var</em> 是一个空变量，将用当前的时间来代替它。</p>
      <p>结果总会<strong>向下</strong>调整成整数。例如，如果两个时间标记之间实际的差是 1.999 天，它将报称 1 天。如果需要更高的精度，可指定 <em>TimeUnits</em> 为 Seconds 并把结果除以 60.0, 3600.0 或 86400.0 。</p>
      <p>如果 <em>Var</em> 或 <em>Value</em> 是一个无效的时间标记或者包含一个早于 1601 的年份，<em>Var</em> 将被设为空来表明有问题。</p>
      <p>内置变量 <strong>A_Now</strong> 包含 <a href="FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a> 格式的当前本地时间。</p>
      <p>要精确地测定在两个事件之间消逝的时间，可用 <a href="../Variables.htm#TickCount">A_TickCount 方法</a>，因为它提供了毫秒级的精度。</p>
      <p>要从一个时间标记加上或者减去某个 seconds, minutes, hours 或 days 的数值，也可用 <a href="EnvAdd.htm">EnvAdd</a> 
(减法是通过添加一个负数来获得的)。<br>
      </p></td>
    </tr>
</table>

<h3>注意</h3>
<p>此命令等于这种速记形式：Var -= Value</p>
<p>变量通过使用 Var++, Var--, ++Var 或 --Var 能被加上或减去 1 。</p>
<p>如果 <em>Var</em> 或 <em>Value</em> 为空或者不以数字开头，为了计算的目的它将被视为 0 (除了在一个表达式<span style="font-weight: bold;">内部</span>使用时，除了使用 <em>TimeUnits</em> 参数时)。</p>
<p>如果 <em>Var</em> 或者 <em>Value</em> 包含小数点，最后的结果将是一个由 <a href="SetFormat.htm">SetFormat</a> 设置格式的浮点数。</p>

<h3>相关命令</h3>
<p><a href="EnvAdd.htm">EnvAdd</a>, <a href="EnvMult.htm">EnvMult</a>, <a href="EnvDiv.htm">EnvDiv</a>, <a href="SetFormat.htm">SetFormat</a>, <a href="../Variables.htm#Expressions">Expressions</a>, <a href="IfIs.htm">If var is [not] type</a>, <a href="SetEnv.htm">SetEnv</a>, <a href="FileGetTime.htm">FileGetTime</a></p>

<h3>示例</h3>
<pre class="NoIndent">EnvSub, MyCount, 2<br>MyCount -= 2 <em>;等同于上面的命令</em>

var1 = 20050126<br>var2 = 20040126<br>EnvSub, var1, %var2%, days<br>MsgBox, %var1% <em>;答案会是 366 天，因为 2004 是个闰年。</em></pre>

</body>
</html>